## pval_cutoff: 0.05
## lfc_cutoff: 0.58
## low_counts_cutoff: 10
General statistics
# Number of samples
length(counts_data)
## [1] 6
# Number of genes
nrow(counts_data)
## [1] 49315
# Total counts
colSums(counts_data)
## SRR13535276 SRR13535278 SRR13535280 SRR13535288 SRR13535290 SRR13535292
## 5442647 5284506 6692745 11361755 11378178 4974222

Create DDS objects
# Create DESeqDataSet object
dds <- get_DESeqDataSet_obj(counts_data, ~ experimental_class_type)
## [1] TRUE
## [1] TRUE
## [1] "DESeqDataSet object of length 49315 with 0 metadata columns"
## [1] "DESeqDataSet object of length 14816 with 0 metadata columns"
colData(dds)
## DataFrame with 6 rows and 3 columns
## experimental_class_type regime treatment
## <factor> <factor> <character>
## SRR13535276 A in space without gravity without nanoceria
## SRR13535278 A in space without gravity without nanoceria
## SRR13535280 A in space without gravity without nanoceria
## SRR13535288 C in space with gravity without nanoceria
## SRR13535290 C in space with gravity without nanoceria
## SRR13535292 C in space with gravity without nanoceria
Sample-to-sample comparisons
# Transform data (blinded rlog)
rld <- get_transformed_data(dds)
PCA plot
pca <- rld$pca
pca_df <- cbind(as.data.frame(colData(dds)) %>% rownames_to_column(var = 'name'), pca$x)
summary(pca)
## Importance of components:
## PC1 PC2 PC3 PC4 PC5 PC6
## Standard deviation 32.1475 31.2210 27.8763 24.7058 21.724 1.145e-13
## Proportion of Variance 0.2672 0.2520 0.2009 0.1578 0.122 0.000e+00
## Cumulative Proportion 0.2672 0.5192 0.7202 0.8780 1.000 1.000e+00
ggplot(pca_df, aes(x = PC1, y = PC2, color = regime)) +
geom_point() +
geom_text(aes(label = name), position = position_nudge(y = -2), show.legend = F, size = 3) +
scale_color_manual(values = colors_default) +
scale_x_continuous(expand = c(0.2, 0))

Correlation heatmap
pheatmap(
cor(rld$matrix),
annotation_col = as.data.frame(colData(dds)) %>% select(regime),
color = brewer.pal(8, 'YlOrRd')
)

Wald test results
# DE analysis using Wald test
dds_full <- DESeq(dds)
colData(dds_full)
## DataFrame with 6 rows and 4 columns
## experimental_class_type regime treatment sizeFactor
## <factor> <factor> <character> <numeric>
## SRR13535276 A in space without gravity without nanoceria 0.667323075938639
## SRR13535278 A in space without gravity without nanoceria 0.81694119800501
## SRR13535280 A in space without gravity without nanoceria 0.752369826698879
## SRR13535288 C in space with gravity without nanoceria 2.07170948187156
## SRR13535290 C in space with gravity without nanoceria 1.54715563274509
## SRR13535292 C in space with gravity without nanoceria 0.793327230993373
# Wald test results
res <- results(
dds_full,
contrast = c('experimental_class_type', condition, control),
alpha = pval_cutoff
)
res
## log2 fold change (MLE): experimental_class_type A vs C
## Wald test p-value: experimental class type A vs C
## DataFrame with 14816 rows and 6 columns
## baseMean log2FoldChange lfcSE stat pvalue padj
## <numeric> <numeric> <numeric> <numeric> <numeric> <numeric>
## ENSMUSG00000098104 6.35502456231063 0.760241835746701 1.27727422950974 0.595206431150267 0.551705491960912 0.916505454618322
## ENSMUSG00000103922 3.00820995044006 -0.433132469862162 1.50508317465069 -0.287779756731841 0.773515333947848 NA
## ENSMUSG00000033845 127.62317189879 -0.388841056957667 0.565086522771941 -0.688108884724892 0.49138421590585 0.90936777953573
## ENSMUSG00000102275 2.53432281523208 0.052192404259107 1.48972863687662 0.0350348398809961 0.972051959709466 NA
## ENSMUSG00000025903 96.0244264986236 -0.22868277884559 0.361327407736831 -0.632896298340448 0.52680136525585 0.913741764367388
## ... ... ... ... ... ... ...
## ENSMUSG00000061654 74.1506161155625 -5.88907033277663 3.77621710981995 -1.5595158227164 NA NA
## ENSMUSG00000079834 36.0645810209202 -0.295195870849416 0.577611890067793 -0.511062663226633 0.609307179042512 0.926138589079627
## ENSMUSG00000095041 247.75851728771 -0.0310833226001456 0.70240655703218 -0.0442526088188576 0.964703047322164 0.996240450001391
## ENSMUSG00000063897 25.0549115624976 0.105657103119908 0.547329254353544 0.193041212907029 0.846926691839342 0.978145142359403
## ENSMUSG00000095742 5.67614678631729 3.32611170026183 1.19057816181692 2.79369453172726 0.00521096764475008 0.233620147031621
mcols(res)
## DataFrame with 6 rows and 2 columns
## type description
## <character> <character>
## baseMean intermediate mean of normalized counts for all samples
## log2FoldChange results log2 fold change (MLE): experimental_class_type A vs C
## lfcSE results standard error: experimental class type A vs C
## stat results Wald statistic: experimental class type A vs C
## pvalue results Wald test p-value: experimental class type A vs C
## padj results BH adjusted p-values
summary(res)
##
## out of 14816 with nonzero total read count
## adjusted p-value < 0.05
## LFC > 0 (up) : 7, 0.047%
## LFC < 0 (down) : 60, 0.4%
## outliers [1] : 159, 1.1%
## low counts [2] : 2586, 17%
## (mean count < 5)
## [1] see 'cooksCutoff' argument of ?results
## [2] see 'independentFiltering' argument of ?results
Summary details
# Upregulated genes (LFC > 0)
res_sig_df %>% filter(log2FoldChange > 0)
# Downregulated genes (LFC < 0)
res_sig_df %>% filter(log2FoldChange < 0)
# Outliers (pvalue and padj are NA)
res[which(is.na(res$pvalue)), ]
## log2 fold change (MLE): experimental_class_type A vs C
## Wald test p-value: experimental class type A vs C
## DataFrame with 159 rows and 6 columns
## baseMean log2FoldChange lfcSE stat pvalue padj
## <numeric> <numeric> <numeric> <numeric> <numeric> <numeric>
## ENSMUSG00000103509 7.40129514659621 -5.90607574224333 3.35481444717482 -1.76047761664345 NA NA
## ENSMUSG00000079554 27.6268572906979 -6.82795018972092 3.46170098249739 -1.97242633729589 NA NA
## ENSMUSG00000085842 28.7557787373665 4.16157267820479 2.17551385435109 1.91291481315163 NA NA
## ENSMUSG00000103553 11.1103502276778 -5.49768239902653 2.81475102952893 -1.95316827007133 NA NA
## ENSMUSG00000047496 20.2027882535108 -2.07168076288967 1.27171446535674 -1.62904552816306 NA NA
## ... ... ... ... ... ... ...
## ENSMUSG00000036452 108.127080322524 -4.32528294198353 1.4123201850542 -3.06253708454755 NA NA
## ENSMUSG00000053846 27.1020098001409 -5.89973618289523 2.22510572870753 -2.65144083122834 NA NA
## ENSMUSG00000024867 18.2290119625443 -1.55449720719351 1.46155195172496 -1.06359353518625 NA NA
## ENSMUSG00000048029 22.7289185955884 -6.524648052149 3.90833857179094 -1.66941730668926 NA NA
## ENSMUSG00000061654 74.1506161155625 -5.88907033277663 3.77621710981995 -1.5595158227164 NA NA
# Low counts (only padj is NA)
res[which(is.na(res$padj) & !is.na(res$pvalue)), ]
## log2 fold change (MLE): experimental_class_type A vs C
## Wald test p-value: experimental class type A vs C
## DataFrame with 2586 rows and 6 columns
## baseMean log2FoldChange lfcSE stat pvalue padj
## <numeric> <numeric> <numeric> <numeric> <numeric> <numeric>
## ENSMUSG00000103922 3.00820995044006 -0.433132469862162 1.50508317465069 -0.287779756731841 0.773515333947848 NA
## ENSMUSG00000102275 2.53432281523208 0.052192404259107 1.48972863687662 0.0350348398809961 0.972051959709466 NA
## ENSMUSG00000103280 2.25920960989173 -0.203644115909523 1.54505917870937 -0.131803440745637 0.895139764976657 NA
## ENSMUSG00000103355 3.20133964653833 -0.0484037993055934 1.26489669923099 -0.0382669978781832 0.96947480338187 NA
## ENSMUSG00000103845 2.38593730663329 -1.28167869010192 1.97492616036161 -0.648975498844597 0.516354213001323 NA
## ... ... ... ... ... ... ...
## ENSMUSG00000064347 2.33248881267207 2.64615302037094 1.66190961299613 1.59223642469965 0.11133159173828 NA
## ENSMUSG00000064360 3.81826754243136 0.236955256621809 1.17588597018725 0.201512104599798 0.840298165462491 NA
## ENSMUSG00000064364 4.38182627855022 -1.46270936034755 1.21265521560855 -1.206203825721 0.227738909185352 NA
## ENSMUSG00000064365 2.11846226606742 1.8972763634415 1.77518921775789 1.06877415909376 0.285171445949883 NA
## ENSMUSG00000064366 4.0458526423878 -1.22558865873295 2.08041804960911 -0.5891069148161 0.555789555085029 NA
Shrunken LFC results
plotMA(res)

# Shrunken LFC results
res_shrunken <- lfcShrink(
dds_full,
coef = str_c('experimental_class_type_', condition, '_vs_', control),
type = 'apeglm'
)
res_shrunken
## log2 fold change (MAP): experimental class type A vs C
## Wald test p-value: experimental class type A vs C
## DataFrame with 14816 rows and 5 columns
## baseMean log2FoldChange lfcSE pvalue padj
## <numeric> <numeric> <numeric> <numeric> <numeric>
## ENSMUSG00000098104 6.35502456231063 0.0196716422233373 0.206079217709953 0.551705491960912 NA
## ENSMUSG00000103922 3.00820995044006 -0.00811497916249672 0.205595902951226 0.773515333947848 NA
## ENSMUSG00000033845 127.62317189879 -0.0468543591037756 0.201405609003906 0.49138421590585 0.910778472009655
## ENSMUSG00000102275 2.53432281523208 0.00104597462915359 0.205356530202675 0.972051959709466 NA
## ENSMUSG00000025903 96.0244264986236 -0.0579342362061664 0.187805085301696 0.52680136525585 0.914773719007531
## ... ... ... ... ... ...
## ENSMUSG00000061654 74.1506161155625 -0.00862302834919477 0.207573765735475 NA NA
## ENSMUSG00000079834 36.0645810209202 -0.0336778097329669 0.198685384633099 0.609307179042512 0.92594546741698
## ENSMUSG00000095041 247.75851728771 -0.00209616369208908 0.198841011101911 0.964703047322164 0.99566965553023
## ENSMUSG00000063897 25.0549115624976 0.0133957589569269 0.194494569621879 0.846926691839342 0.977817490007095
## ENSMUSG00000095742 5.67614678631729 2.01391522128921 1.91987357632614 0.00521096764475008 NA
plotMA(res_shrunken)

mcols(res_shrunken)
## DataFrame with 5 rows and 2 columns
## type description
## <character> <character>
## baseMean intermediate mean of normalized counts for all samples
## log2FoldChange results log2 fold change (MAP): experimental class type A vs C
## lfcSE results posterior SD: experimental class type A vs C
## pvalue results Wald test p-value: experimental class type A vs C
## padj results BH adjusted p-values
summary(res_shrunken, alpha = pval_cutoff)
##
## out of 14816 with nonzero total read count
## adjusted p-value < 0.05
## LFC > 0 (up) : 7, 0.047%
## LFC < 0 (down) : 60, 0.4%
## outliers [1] : 159, 1.1%
## low counts [2] : 3159, 21%
## (mean count < 6)
## [1] see 'cooksCutoff' argument of ?results
## [2] see 'independentFiltering' argument of ?results
Summary details
# Upregulated genes (LFC > 0)
res_shrunken_sig_df %>% filter(log2FoldChange > 0)
# Downregulated genes (LFC < 0)
res_shrunken_sig_df %>% filter(log2FoldChange < 0)
# Outliers (pvalue and padj are NA)
res_shrunken[which(is.na(res_shrunken$pvalue)), ]
## log2 fold change (MAP): experimental class type A vs C
## Wald test p-value: experimental class type A vs C
## DataFrame with 159 rows and 5 columns
## baseMean log2FoldChange lfcSE pvalue padj
## <numeric> <numeric> <numeric> <numeric> <numeric>
## ENSMUSG00000103509 7.40129514659621 -0.0123156807074115 0.207854459212066 NA NA
## ENSMUSG00000079554 27.6268572906979 -0.011482488512593 0.207786822785472 NA NA
## ENSMUSG00000085842 28.7557787373665 0.0246738439330322 0.209304521679298 NA NA
## ENSMUSG00000103553 11.1103502276778 -0.0177780380997078 0.208382236624155 NA NA
## ENSMUSG00000047496 20.2027882535108 -0.0492315724372049 0.214095634831138 NA NA
## ... ... ... ... ... ...
## ENSMUSG00000036452 108.127080322524 -0.0607128941514573 0.220434621845026 NA NA
## ENSMUSG00000053846 27.1020098001409 -0.0305768648442745 0.210613644943978 NA NA
## ENSMUSG00000024867 18.2290119625443 -0.0287111419756263 0.208606390580886 NA NA
## ENSMUSG00000048029 22.7289185955884 -0.00870315046919196 0.207583578847544 NA NA
## ENSMUSG00000061654 74.1506161155625 -0.00862302834919477 0.207573765735475 NA NA
# Low counts (only padj is NA)
res_shrunken[which(is.na(res_shrunken$padj) & !is.na(res_shrunken$pvalue)), ]
## log2 fold change (MAP): experimental class type A vs C
## Wald test p-value: experimental class type A vs C
## DataFrame with 3159 rows and 5 columns
## baseMean log2FoldChange lfcSE pvalue padj
## <numeric> <numeric> <numeric> <numeric> <numeric>
## ENSMUSG00000098104 6.35502456231063 0.0196716422233373 0.206079217709953 0.551705491960912 NA
## ENSMUSG00000103922 3.00820995044006 -0.00811497916249672 0.205595902951226 0.773515333947848 NA
## ENSMUSG00000102275 2.53432281523208 0.00104597462915359 0.205356530202675 0.972051959709466 NA
## ENSMUSG00000103280 2.25920960989173 -0.00361950158846346 0.205495238592448 0.895139764976657 NA
## ENSMUSG00000103355 3.20133964653833 -0.00120581912777118 0.204580380302398 0.96947480338187 NA
## ... ... ... ... ... ...
## ENSMUSG00000065947 5.53967439422113 0.0697355147720251 0.221195175767654 0.0768166543068758 NA
## ENSMUSG00000064364 4.38182627855022 -0.0419282235724677 0.210623339876222 0.227738909185352 NA
## ENSMUSG00000064365 2.11846226606742 0.0237202420243018 0.208144689072666 0.285171445949883 NA
## ENSMUSG00000064366 4.0458526423878 -0.0114088008306986 0.206889985257622 0.555789555085029 NA
## ENSMUSG00000095742 5.67614678631729 2.01391522128921 1.91987357632614 0.00521096764475008 NA
Visualizing results
Heatmaps
# Plot normalized counts (z-scores)
pheatmap(counts_sig_norm[2:7],
color = brewer.pal(8, 'YlOrRd'),
cluster_rows = T,
show_rownames = F,
annotation_col = as.data.frame(colData(dds)) %>% select(regime),
border_color = NA,
fontsize = 10,
scale = 'row',
fontsize_row = 10,
height = 20)

# Plot log-transformed counts
pheatmap(counts_sig_log[2:7],
color = rev(brewer.pal(8, 'RdYlBu')),
cluster_rows = T,
show_rownames = F,
annotation_col = as.data.frame(colData(dds)) %>% select(regime),
border_color = NA,
fontsize = 10,
fontsize_row = 10,
height = 20)

# Plot log-transformed counts (top 24 DE genes)
pheatmap((counts_sig_log %>% filter(ensembl_gene_id %in% res_sig_df$ensembl_gene_id[1:24]))[2:7],
color = rev(brewer.pal(8, 'RdYlBu')),
cluster_rows = T,
show_rownames = F,
annotation_col = as.data.frame(colData(dds)) %>% select(regime),
fontsize = 10,
fontsize_row = 10,
height = 20)

Volcano plots
# Unshrunken LFC
res_df %>%
mutate(
sig_threshold = if_else(
padj < pval_cutoff & abs(log2FoldChange) >= lfc_cutoff,
if_else(log2FoldChange > 0, 'DE-up', 'DE-down'),
'non-DE'
)
) %>%
filter(!is.na(sig_threshold)) %>%
ggplot() +
geom_point(aes(x = log2FoldChange, y = -log10(padj), colour = sig_threshold)) +
scale_color_manual(values = c('blue', 'red', 'gray')) +
xlab('log2 fold change') +
ylab('-log10 adjusted p-value')

# Shrunken LFC
res_shrunken_df %>%
mutate(
sig_threshold = if_else(
padj < pval_cutoff & abs(log2FoldChange) >= lfc_cutoff,
if_else(log2FoldChange > 0, 'DE-up', 'DE-down'),
'non-DE'
)
) %>%
filter(!is.na(sig_threshold)) %>%
ggplot() +
geom_point(aes(x = log2FoldChange, y = -log10(padj), colour = sig_threshold)) +
scale_color_manual(values = c('blue', 'red', 'gray')) +
xlab('log2 fold change') +
ylab('-log10 adjusted p-value')

GSEA (all)
Hallmark genesets
# Shrunken LFC
get_fgsea_res(rank_lfc, mm_h) %>% plot_enrichment_table(rank_lfc, mm_h)

# Wald stat
get_fgsea_res(rank_stat, mm_h) %>% plot_enrichment_table(rank_stat, mm_h)

# Rank: sign(LFC) * -log10(pvalue)
get_fgsea_res(rank_pval, mm_h) %>% plot_enrichment_table(rank_pval, mm_h)

GO biological process
# Shrunken LFC
get_fgsea_res(rank_lfc, mm_c5_bp) %>% plot_enrichment_table(rank_lfc, mm_c5_bp)

# Wald stat
get_fgsea_res(rank_stat, mm_c5_bp) %>% plot_enrichment_table(rank_stat, mm_c5_bp)

# Rank: sign(LFC) * -log10(pvalue)
get_fgsea_res(rank_pval, mm_c5_bp) %>% plot_enrichment_table(rank_pval, mm_c5_bp)

GO cellular component
# Shrunken LFC
get_fgsea_res(rank_lfc, mm_c5_cc) %>% plot_enrichment_table(rank_lfc, mm_c5_cc)

# Wald stat
get_fgsea_res(rank_stat, mm_c5_cc) %>% plot_enrichment_table(rank_stat, mm_c5_cc)

# Rank: sign(LFC) * -log10(pvalue)
get_fgsea_res(rank_pval, mm_c5_cc) %>% plot_enrichment_table(rank_pval, mm_c5_cc)

GO molecular function
# Shrunken LFC
get_fgsea_res(rank_lfc, mm_c5_mf) %>% plot_enrichment_table(rank_lfc, mm_c5_mf)

# Wald stat
get_fgsea_res(rank_stat, mm_c5_mf) %>% plot_enrichment_table(rank_stat, mm_c5_mf)

# Rank: sign(LFC) * -log10(pvalue)
get_fgsea_res(rank_pval, mm_c5_mf) %>% plot_enrichment_table(rank_pval, mm_c5_mf)

GSEA (DE)
Hallmark genesets
# Shrunken LFC
get_fgsea_res(rank_lfc, mm_h) %>% plot_enrichment_table(rank_lfc, mm_h)

# Wald stat
get_fgsea_res(rank_stat, mm_h) %>% plot_enrichment_table(rank_stat, mm_h)

# Rank: sign(LFC) * -log10(pvalue)
get_fgsea_res(rank_pval, mm_h) %>% plot_enrichment_table(rank_pval, mm_h)

GO biological process
# Shrunken LFC
get_fgsea_res(rank_lfc, mm_c5_bp) %>% plot_enrichment_table(rank_lfc, mm_c5_bp)

# Wald stat
get_fgsea_res(rank_stat, mm_c5_bp) %>% plot_enrichment_table(rank_stat, mm_c5_bp)

# Rank: sign(LFC) * -log10(pvalue)
get_fgsea_res(rank_pval, mm_c5_bp) %>% plot_enrichment_table(rank_pval, mm_c5_bp)

GO cellular component
# Shrunken LFC
get_fgsea_res(rank_lfc, mm_c5_cc) %>% plot_enrichment_table(rank_lfc, mm_c5_cc)

# Wald stat
get_fgsea_res(rank_stat, mm_c5_cc) %>% plot_enrichment_table(rank_stat, mm_c5_cc)

# Rank: sign(LFC) * -log10(pvalue)
get_fgsea_res(rank_pval, mm_c5_cc) %>% plot_enrichment_table(rank_pval, mm_c5_cc)

GO molecular function
# Shrunken LFC
get_fgsea_res(rank_lfc, mm_c5_mf) %>% plot_enrichment_table(rank_lfc, mm_c5_mf)

# Wald stat
get_fgsea_res(rank_stat, mm_c5_mf) %>% plot_enrichment_table(rank_stat, mm_c5_mf)

# Rank: sign(LFC) * -log10(pvalue)
get_fgsea_res(rank_pval, mm_c5_mf) %>% plot_enrichment_table(rank_pval, mm_c5_mf)

System Info
sessionInfo()
## R version 3.6.3 (2020-02-29)
## Platform: x86_64-apple-darwin15.6.0 (64-bit)
## Running under: macOS Sierra 10.12.6
##
## Matrix products: default
## BLAS: /Library/Frameworks/R.framework/Versions/3.6/Resources/lib/libRblas.0.dylib
## LAPACK: /Library/Frameworks/R.framework/Versions/3.6/Resources/lib/libRlapack.dylib
##
## locale:
## [1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
##
## attached base packages:
## [1] grid parallel stats4 stats graphics grDevices utils datasets methods base
##
## other attached packages:
## [1] VennDiagram_1.6.20 futile.logger_1.4.3 fgsea_1.12.0 Rcpp_1.0.3 RColorBrewer_1.1-2 pheatmap_1.0.12 DESeq2_1.26.0 SummarizedExperiment_1.16.1 DelayedArray_0.12.3 BiocParallel_1.20.1 matrixStats_0.57.0 Biobase_2.46.0 GenomicRanges_1.38.0 GenomeInfoDb_1.22.1 IRanges_2.20.2 S4Vectors_0.24.4 BiocGenerics_0.32.0 scales_1.1.1 forcats_0.4.0 stringr_1.4.0 dplyr_1.0.2 purrr_0.3.3 readr_1.3.1 tidyr_1.0.0 tibble_3.1.0 ggplot2_3.3.3 tidyverse_1.2.1
##
## loaded via a namespace (and not attached):
## [1] colorspace_1.4-1 ellipsis_0.3.0 htmlTable_1.13.3 XVector_0.26.0 base64enc_0.1-3 rstudioapi_0.10 farver_2.1.0 bit64_0.9-7 mvtnorm_1.1-1 apeglm_1.8.0 AnnotationDbi_1.48.0 fansi_0.4.0 lubridate_1.7.4 xml2_1.2.2 splines_3.6.3 geneplotter_1.64.0 knitr_1.25 Formula_1.2-3 jsonlite_1.6 broom_0.7.5 annotate_1.64.0 cluster_2.1.0 png_0.1-7 compiler_3.6.3 httr_1.4.1 backports_1.1.5 assertthat_0.2.1 Matrix_1.2-18 cli_1.1.0 formatR_1.7 acepack_1.4.1 htmltools_0.5.1.1 tools_3.6.3 coda_0.19-3 gtable_0.3.0 glue_1.4.2 GenomeInfoDbData_1.2.2 fastmatch_1.1-0 bbmle_1.0.23.1 cellranger_1.1.0 jquerylib_0.1.3 vctrs_0.3.4 xfun_0.22 rvest_0.3.5 lifecycle_0.2.0 XML_3.99-0.3 MASS_7.3-51.5 zlibbioc_1.32.0 hms_0.5.2 lambda.r_1.2.4 yaml_2.2.0 memoise_1.1.0 gridExtra_2.3 emdbook_1.3.12 sass_0.3.1 bdsmatrix_1.3-4 rpart_4.1-15 latticeExtra_0.6-29 stringi_1.4.3 RSQLite_2.2.1 genefilter_1.68.0 checkmate_1.9.4 rlang_0.4.8 pkgconfig_2.0.3 bitops_1.0-6 evaluate_0.14 lattice_0.20-38 labeling_0.3 htmlwidgets_1.5.1 bit_1.1-15.1 tidyselect_1.1.0 plyr_1.8.4 magrittr_1.5 R6_2.4.0 generics_0.0.2 Hmisc_4.3-0 DBI_1.1.0 pillar_1.5.1 haven_2.2.0 foreign_0.8-75 withr_2.1.2 survival_3.1-8 RCurl_1.95-4.12 nnet_7.3-12 modelr_0.1.5 crayon_1.3.4 futile.options_1.0.1 utf8_1.1.4 rmarkdown_2.7 jpeg_0.1-8.1 locfit_1.5-9.4 readxl_1.3.1 data.table_1.13.6 blob_1.2.1 digest_0.6.27 xtable_1.8-4 numDeriv_2016.8-1.1 munsell_0.5.0 bslib_0.2.4